package com.yuelao.yuelao_backend.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * VIP订单表
 */
@Data
@TableName("vip_orders")
public class VipOrder implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 订单号
     */
    private String orderNo;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 套餐ID
     */
    private Long planId;

    /**
     * 时长（天）
     */
    private Integer duration;

    /**
     * 金额
     */
    private BigDecimal amount;

    /**
     * 爱心币支付数量（以分为单位）
     */
    private Integer coinAmount;

    /**
     * 支付方式
     */
    private String paymentMethod;

    /**
     * 支付时间
     */
    private LocalDateTime paymentTime;

    /**
     * 状态: 0-待支付, 1-已支付, 2-已取消, 3-已退款
     */
    private Integer status;

    /**
     * 生效时间
     */
    private LocalDateTime startTime;

    /**
     * 过期时间
     */
    private LocalDateTime expireTime;

    /**
     * 创建时间
     */
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    private LocalDateTime updatedAt;
    
    /**
     * 设置支付时间（兼容方法）
     * @param paidAt 支付时间
     */
    public void setPaidAt(LocalDateTime paidAt) {
        this.paymentTime = paidAt;
    }
    
    /**
     * 设置结束时间（兼容方法）
     * @param endTime 结束时间
     */
    public void setEndTime(LocalDateTime endTime) {
        this.expireTime = endTime;
    }
}

